package ui;

import dao.IUserDao;
import factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import service.IUserService;
import service.impl.UserServiceImpl;

/**
* 模拟客户端访问
*/
public class TestClient {

   public static void main(String[] args) {
       /**
        * 由于此时我们的对象已经由spring去创建， 所以此时我们就要去spring的容器中去获取我们的对象
        *
        * 我们常用的初始化spring的容器有三个
        * 1.ClassPathXmlApplicationContext 该类可以加载类路径下的配置文件初始化容器，也就是我们的resource目录下面
        * 2.FileSystemXmlApplicationContext 该类可以加载磁盘下面的配置文件初始化容器
        * 3.AnnotationConfigApplicationContext 该类是读取注解初始化容器
        * 其实大同小异，此处只演示类路径下面的初始化
        */
       ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean.xml");
       IUserService userService = (IUserService)applicationContext.getBean("userService");
       /**
        * 除了上述从spring容器中获取对象方式以外， 我们还可以使用以下方式
        */
       IUserDao userDao = applicationContext.getBean("userDao", IUserDao.class);

       System.out.println(userService + "\n " + userDao);
  }
}